package com.zhangjianbing.hystrix.custom02.annotation;

import org.aspectj.lang.ProceedingJoinPoint;

/**
 * @author zhangjianbing
 * time 2021/2/20
 */
public interface HystixCmd {

    /**
     * 拦截请求
     */
    Object interceptor(ProceedingJoinPoint request);

    /**
     * 通过请求
     */
    Object pass(ProceedingJoinPoint request);

    /**
     * 测试请求
     */
    Object test(ProceedingJoinPoint request);

    /**
     * 修改拦截器的状态
     */
    void changeStatus(HystrixStatus status);

    /**
     * 获取自己的状态
     */
    HystrixStatus getStatus();

}
